{{tag>Intrepid réseau internet courriel tutoriel BROUILLON}}

----

====== Comment envoyer l'IP de sa box automatiquement par courriel ======
===== Pré-requis : savoir envoyer un courriel par SMTP en ligne de commande =====
  * Voir le tuto : [[tutoriel:comment_envoyer_un_mail_par_smtp_en_ligne_de_commande]]

===== Envoyer l'IP externe de sa box par courriel dans un script =====
==== Récupérer l'IP externe de sa box ====
<file>GET whatismyip.fr/raw/</file>
  * Cette commande renvoie des erreurs une fois sur deux, donc on va la lancer 2 ou 3 fois dans un script et récupérer l'IP dans un fichier.
<file>nano ~/getip</file>
  GET whatismyip.fr/raw/ > .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.fr/raw/ >> .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.fr/raw/ >> .myip
  echo "" >> .myip
<file>sh ~/getip</file>
<file>cat ~/.myip</file>
  92.122.18.135
  92.122.18.135
  92.122.18.135

==== Envoyer son IP de box à son courriel au bureau ====

  * Voir le tuto : [[tutoriel:comment_envoyer_un_mail_par_smtp_en_ligne_de_commande]]
== par msmtp ==

<file>cat ~/.myip | msmtp johnny@whitehouse.gov</file>
== par ssmtp ==
<file>cat ~/.myip | mail johnny@whitehouse.gov</file>
<note tip>Sans préciser Subject://DeQuoiOnParle// le message n'aura pas de sujet.
Il faut donc prévoir de le rajouter en tête du fichier ~/.myip</note>

==== Compléter le script : récupérer l'IP ET l'envoyer ====
<note warning>Attention, seule la première ligne ne contient qu'un signe > (//ce qui crée ou écrase le fichier//). Toutes les autres lignes contiennent 2 signes >> (//ce qui complète un fichier existant, ou le crée sinon//).</note>
  * [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] ~/getip pour qu'il intègre la commande msmtp (ou mail) à la dernière ligne:
<file>nano ~/getip</file>
  Subject:MaBoxMeParle > .myip
  GET whatismyip.fr/raw/ >> .myip 
  echo "" >> .myip
  sleep 1
  GET whatismyip.fr/raw/ >> .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.fr/raw/ >> .myip
  echo "" >> .myip
  cat .myip | msmtp johnny@whitehouse.gov

  * Rendre le script exécutable :
<file>chmod 700 ~/getip</file>

=== Utilisation ===

  * Lancer le script
<file>sh ~/getip</file>

=== Vérification ===

  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu, soit 3 lignes avec l'adresse IP de la maison blanche ... si c'est là que votre box est branchée.


===== Automatisation de l'envoi =====

==== Par la crontab ====

Le système [[..\cron|crontab]] intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.

=== Modification de la crontab ===

  * Si la crontab de l'utilisateur existe, on la redirige vers un fichier
<file>crontab -l > cron</file>
<note important>On évite systématiquement l'édition par la commande crontab -e, parce que la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !</note>
  * Puis on [[:tutoriel:comment_editer_un_fichier|modifie/crée le fichier]] cron en y ajoutant notre ligne de programmation :
<file>nano cron</file>
  23 8,12,15,18 1-5 * * sh /home/johnny/getip
  # à 08:23 12:23 15:23 et 18:23, du 1er au 5ème jour de la semaine
  # parce que les soirs et week-end je suis à la maison
  # et que c'est encore plus simple de récupérer mon IP

=== Injection des modifications de la crontab ===

  * Créer le fichier cron ne suffit pas, il faut encore l'injecter dans le système crontab :
<file>crontab ~/cron</file>

== Vérification de la crontab ==

<file>crontab -l</file>
  ...
  23 8,12,15,18 1-5 * * sh /home/johnny/getip
  ...
FIXME (23 8,12,15,18 1-5 * *) donne bien les jours 1 à 5 dans la semaine alors que (23 8,12,15,18 * * 1-5) donne les jours 1 à 5 du mois
== Nettoyage ==

  * Pas de raison de laisser traîner son cron derrière soi, puisqu'on sait le recréer à volonté
<file>rm ~/cron</file>
==== Par autre chose que la crontab ...====
<note tip>Partie à compléter</note>
<note>
**Remarques :**
  * Si l'envoi répété de l'IP sature votre boîte de courriel, à vous de modifier la programmation.
</note>


===== Références =====

  * [[:cron|Crontab]]



== Contributeurs ==
[[utilisateurs:kerkael]] création de la page le 23/08/2009